package com.justnow.solution;

import java.util.LinkedList;
import java.util.Stack;

public class QueueByStack {
    Stack<Integer> stack1 = new Stack<>();
    Stack<Integer> stack2 = new Stack<>();

    public void push(int value) {
        //入队就直接进栈1
        stack1.push(value);
    }

    public int pop() {
        //此时涉及到两种情形，
        //第一，栈2为空。从栈1中弹出数据到栈2中，直到栈1为空。最后将栈2的栈顶弹出
        //第二，栈2不为空，则直接从栈2中弹出栈顶元素。
        //只有这样才能保存的栈的头进尾出的特性。
        if (stack2.size() == 0) {
            while(!stack1.empty()) {
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }

}
